package com.boot.admin.modules.sys.ai.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * 文本缓冲和TTS优化配置
 *
 * @author 李飞洋
 * @date 2025/9/24
 */
@Data
@Configuration
@ConfigurationProperties(prefix = "ai.text-buffer")
public class TextBufferConfig {

    /**
     * 最小TTS触发长度
     */
    private int minTtsLength = 8;

    /**
     * 最大TTS缓冲长度（避免句子过长）
     */
    private int maxTtsBufferLength = 100;

    /**
     * TTS重试次数
     */
    private int ttsRetryCount = 3;

    /**
     * TTS重试间隔（毫秒）
     */
    private long ttsRetryDelayMs = 500;

    /**
     * 是否启用HanLP智能断句
     */
    private boolean enableHanLPSentenceSplit = true;

    /**
     * 是否启用强制分割（当缓冲区过长时）
     */
    private boolean enableForceSplit = true;

    /**
     * 缓冲区清理间隔（分钟）
     */
    private int bufferCleanupIntervalMinutes = 5;

    /**
     * 缓冲区过期时间（分钟）
     */
    private int bufferExpirationMinutes = 30;

    /**
     * 句子结束符号正则表达式
     */
    private String sentenceEndPattern = "[。！？.!?；;]";

    /**
     * 中文句子结束符号
     */
    private String chineseSentenceEndPattern = "[。！？；]";

    /**
     * 英文句子结束符号
     */
    private String englishSentenceEndPattern = "[.!?;]";

    /**
     * 强制分割符号（逗号等）
     */
    private String forceSplitPattern = "[，,、]";

    /**
     * 是否启用TTS去重
     */
    private boolean enableTtsDeduplication = true;

    /**
     * 是否启用详细日志
     */
    private boolean enableVerboseLogging = false;
}